﻿package controller 
{
	import flash.display.Stage;
	
	import model.KeyClickProxy;
	import model.MouseClickProxy;
	
	import org.puremvc.as3.interfaces.INotification;
	import org.puremvc.as3.patterns.command.SimpleCommand;
	
	import view.StageMediator;
	
	/**
	 * 这个类中主要就是需要重写父类中的execute方法
	 * 在这个方法中进行主要的业务逻辑处理
	 * @author ...
	 */
	public class StartUpCommand extends SimpleCommand
	{		
		override public function execute(notification:org.puremvc.as3.interfaces.INotification):void 
		{
			/**startupCommand有一些特殊，这个command主要是用于启动这个项目，所以在这个项目中主要是注册一些此后会用于的proxy和mediator
			注册一个代理，主要用于操作数据，比如获取数据，写入数据等
			注册一个mediator,主要是用做与UI通信的媒介，即从UI接收用户事件，和向用户呈现数据*/
			facade.registerProxy(new MouseClickProxy());
			facade.registerProxy(new KeyClickProxy());
			var stage:Stage = notification.getBody() as Stage;
			facade.registerMediator(new StageMediator(stage));
			
		}
	}
	
}